1. Field of the Invention
This invention relates generally to data processing apparatus and more particularly to the execution of a three descriptor instruction in a data processing system in which the boundary of a data string or operand does not coincide with the boundaries of the addressable units of memory space, i.e., words in memory.
2. Description of the Prior Art
It is known in the prior art to augment an instruction in a data processing system by utilizing three descriptors. The first and the second descriptors include information defining the addresses in memory of the first and second operand which are involved in the operation defined by the instruction. The third descriptor includes information defining the address in memory into which the operand resulting from the operation defined by the instruction is to be stored.
It is also known in the prior art to store data strings (operands) in memory in consecutive memory positions without regard to the boundaries of the words, the addressable units of memory space. While increasing the complexity of identifying the boundaries of the data strings, the advantage served by a procedure is the increased utilization of memory space.
It will be clear that when a data string or operand is transferred from the manipulative portion of the data processing system to the memory, those positions in the first and last word of the group of words which include the operand data string but which also include positions which do not include operand data, will destroy the data in the non-operand positions of the first and last words in memory. It is therefore necessary to fetch the first and last words of the memory location defined by descriptor three in order to insert the non-operand data or rewrite data into the first and last words containing the boundaries of the operand.
It is known in the prior art, after execution of the three descriptor instruction, to fetch the first word into which the operand resulting from the instruction execution is to be stored and to insert the data from the non-operand positions in the appropriate locations of the word. This first word is then stored in memory as well as the succeeding words until the last word is reached. Before storing this last word, the corresponding word from memory is fetched and the data in the non-operand positions are inserted in the appropriate positions along with the resulting operand in the last word to be stored in memory and that word is subsequently stored.
It is also known in the prior art to fetch both the first and the last words in the memory location defined by the third descriptor immediately after instruction execution. Thus, the non-operand information is available for insertion in the first and last words to be stored in memory and the normal storage sequence can thereafter be followed without interruption.
In each of the prior art descriptions, the normal sequence of operations must be suspended in order to fetch the first and last words of the memory location described by the third descriptor, thereby breaking the continuity of the data processing machine operation and providing an undesirable delay.
It is therefore an object of the present invention to provide an improved data processing system.
It is a still further object of the present invention to provide for storage of an operand resulting from execution of a three descriptor instruction without interrupting the normal data processing sequence while retaining the data stored in non-operand related positions in words identified by the third descriptor.
It is a further object of the present invention to fetch rewrite data in order to prevent its loss during normal execution of a three descriptor instruction.
It is another object of the present invention to fetch a first and a last word of a location in memory into which an operand is to be written, wherein the first and last words contain data in positions not containing operand data during the normal sequences of operations of a data processing machine.
It is yet another object of the present invention to insert rewrite data into a word containing the least significant and a word containing the most significant data of an operand resulting from a three descriptor instruction and which an operand is to store in a memory location defined by the third descriptor.